//
// This code is to be used for evaluation of the CS2J tool ONLY.
//
// This file was translated from C# to Java by CS2J (http://www.cs2j.com).
//
// For more information about CS2J please contact info@twigletsoftware.com
//
// Translated by CS2J (http://www.cs2j.com): 2013/1/12 14:27:23
//

package ms.sudoku;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;

import ms.sudoku.technique.EliminationTechnique;

public final class SolverResults {
	private PuzzleStatus _status = PuzzleStatus.Unknown;
	private List<PuzzleState> _puzzles = new ArrayList<>();
	private int _numberOfDecisionPoints;
	private Map<EliminationTechnique, Integer> _useOfTechniques;

	public SolverResults(PuzzleStatus status, PuzzleState state, int numberOfDecisionPoints,
			Map<EliminationTechnique, Integer> useOfTechniques) {
		_status = status;
		_puzzles.add(state);
		_numberOfDecisionPoints = numberOfDecisionPoints;
		_useOfTechniques = useOfTechniques;
	}

	public PuzzleStatus getStatus() {
		return _status;
	}

	public PuzzleState getPuzzle() {
		return _puzzles.size() > 0 ? _puzzles.get(0) : null;
	}

	public List<PuzzleState> getPuzzles() {
		return _puzzles;
	}

	public int getNumberOfDecisionPoints() {
		return _numberOfDecisionPoints;
	}

	public void setNumberOfDecisionPoints(int value) {
		_numberOfDecisionPoints = value;
	}

	public Map<EliminationTechnique, Integer> getUseOfTechniques() {
		return _useOfTechniques;
	}

}
